import request from '../utils/request';

/**
 * 创建组织
 * @param {string} parentId 上级组织id
 * @param {string} name 组织名
 * @param {string} description 组织描述
 */
export function createOrganizationApi(parentId, name, description) {
  return request({
    url: '/organizations',
    method: 'post',
    data: {
      parent_id: parentId,
      name,
      description
    }
  });
}

/**
 * 创建临时组织
 * @param {number} parentId 上级组织id
 */
export function createOrganizationTempApi(parentId) {
  return request({
    url: '/organizations/temp',
    method: 'post',
    data: {
      parent_id: parentId
    }
  });
}

/**
 * 删除组织
 * @param {string} id 组织id
 */
export function deleteOrganizationApi(id) {
  return request({
    url: '/organizations/' + id,
    method: 'delete'
  });
}

/**
 * 更新组织
 * @param {string} id 组织uuid
 * @param {string} name 组织名
 * @param {string} description 组织描述
 */
export function updateOrganizationApi(id, name, description) {
  return request({
    url: '/organizations/' + id,
    method: 'put',
    data: {
      name,
      description
    }
  });
}

/**
 * 批量更新组织
 * @param {object} organizationTree 组织树
 */
export function updateOrganizationBatchApi(organizationTree) {
  return request({
    url: '/organizations',
    method: 'put',
    data: organizationTree
  });
}

/**
 * 获取组织列表
 * @param {number} pageIndex 分页页码
 * @param {number} pageSize 分页每页数量
 * @param {string} sortType 排序顺序
 * @param {string} orderBy 排序方式
 * @param {string} name 组织名（模糊搜索）
 */
export function getOrganizationListApi() {
  return request({
    url: '/organizations',
    method: 'get'
  });
}

/**
 * 获取组织uuid详情
 * @param {string} id 组织uuid
 */
export function getOrganizationDetailApi(id) {
  return request({
    url: '/organizations/' + id,
    method: 'get'
  });
}

/**
 * 获取查询组织列表
 * @param {string} name 组织名
 * @param {number} take 获取数量（5-100）
 */
export function getQueryOrganizationListApi(name, take) {
  return request({
    url: '/organizations/query',
    params: { name, take }
  });
}

/** 查询子组织列表 */
export function getOrganizationChildrenList() {
  return request({
    url: '/organizations/children',
    method: 'get'
  });
}
